package pe.gob.bcrp.sgci.gestion.reportes.util;

import java.util.ArrayList;

public class StringUtil {

	public static String formatoHTML(String html){
		ArrayList<String> etiquetas = new ArrayList<String>();
		String etiquetaAux;
		if(html == null){
			return "";
		}
		html = html.replace(" ", "&nbsp;");
		etiquetas = devolverContenidoDeEtiquetas(html);
		
		for (String string : etiquetas) {
			etiquetaAux = string;
			string = string.replace("&nbsp;", " ");
			html = html.replace(etiquetaAux, string);
		}
		
		return html;
	}

	public static ArrayList<String> devolverContenidoDeEtiquetas(String expresion){
		String[] cadena1 = expresion.split("<");
		String[] cadena2 ;
		ArrayList<String> resultado = new ArrayList<String>();
		for (int i = 1; i < cadena1.length; i++) {
			cadena2 = cadena1[i].split(">");
			resultado.add(cadena2[0]);
		}
		
		return resultado;
	}
			
	public static String formato2Lineas(String string, String stringAnchoCelda){
		String[] anchos = stringAnchoCelda.split("px");
		int anchocelda=0;
		for(int i=0;i<anchos.length;i++){
			anchocelda+=new Integer(anchos[i]);
		}
		//int anchocelda = new Integer(stringAnchoCelda.substring(0, stringAnchoCelda.length()-2))-6;
		
		double anchocaracter = 7.8;
		int cantidad = (int) Math.round(anchocelda/anchocaracter);
		int menor = string.length();
		if(menor>cantidad*2){
			menor=cantidad*2+1;
		}
		char[] resultado = new char[cantidad*2+2];
		char[] cadena = string.toCharArray();
		boolean flag=true;
		for(int i=0;i<menor;i++){
			if(i == cantidad && cadena[i]!=' '){
				resultado[i] = ' ';
				flag=false;
				i++;
				if(i<menor){
					resultado[i] = cadena[i-1];
				}
			}else{
				if(flag){
					resultado[i] = cadena[i];
				}else{
					resultado[i] = cadena[i-1];
					if(i+1==menor && menor == string.length()){
						resultado[i+1] = cadena[i];
					}
				}
			}
		}
		return new String(resultado);
	}

}
